An all points addressable marking engine such as a laser, ink jet, or dot matrix printer, is capable of placing a mark at any one of a large number of pixel locations on a page. Typically, a controller in the marking engine receives an electronically encoded stream of text and graphics instructions from an external source and generates a signal for controlling the marking engine. Since such marking engines often function to mark one line of pixels at a time, in raster fashion, the controller is commonly referred to as a raster image processor or RIP.
A RIP includes, for example, a microprocessor for control and data manipulation, a font memory for storing bit maps of alphanumeric characters and graphic objects, and a page memory for storing the bit map representation of a page of information. The page memory contains a memory location for each location on the page where a mark can be made by the marking engine. The bit map in the page memory may consist for example of "1"s to indicate that a mark is to be made at the corresponding location on the page, or "0"s to indicate that the location is to be left blank. The page memory can store a full or partial page.
In operation, the processor receives a code such as ASCII code indicating a character and the location it is to be printed, and retrieves a bit map representation of the indicated character from the font memory. The processor then stores the bit map in the desired location in the page memory. When the page memory has been filled in this fashion, the contents of the memory are addressed, one line at a time, to drive the marking engine.
Often, it is desirable to have the RIP alter the pattern of the bit map stored in the page memory in one or more ways prior to driving the marking engine. For example, it may be desired to clip or "chop off" a portion of a character or graphic object that lies outside of a clipping boundary or "window" that is specified in the commands sent to the RIP. It may further be desired to pattern or texture the character or graphic object with a pattern such as cross-hatching. It may also be desirable to provide halftone shading of the character or graphic object, or to provide shading of an area within a window.
Generally, each of the processes described above require that the pattern of bits in the page memory be altered. Previously, such alteration has involved additional processing steps that slow down the rate at which objects can be written into the page memory. For example, see published European patent application No. 0 210 447, published 08.04.87, by Willems et al. Willems et al disclose a raster image memory which can be filled with the bit map representations of characters and graphic objects to be printed. The contents of the memory can then be altered to invert the polarity (e.g. change black to white or vice versa) of characters, to fill a predetermined area with a texture pattern such as blocks or hatching, and to fill an area surrounded by lines with a repeating pattern. The contents of the memory are changed by reading out the present contents, performing a logical operation on the contents in a logical processing unit, and replacing the original contents of the memory with the modified contents. This approach suffers from the drawback noted above in that it takes time to read out the contents of the memory, perform the logical operations, and replace the modified contents in the memory. In another approach disclosed in U.S. Pat. No. 4,584,573, issued Apr. 22, 1986 to Ito, character pattern data developed from a character pattern data generation circuit and background pattern data developed from a background pattern data generation circuit are combined at an OR gate prior to printing. This approach is not subject to the delays inherent in the previously noted approach, but is rather limited in the types of modifications that are possible.
It is therefore the object of the present invention to provide a raster image processor and a method of controlling a bit map memory in a raster image processor for applying halftone tints, textures and windowing patterns to bit map representations of characters and graphic objects, that is free of the shortcomings noted above.